﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once

#include "GcmpGUiBaseInterface.h"

#include <string>

namespace gcmp
{

/// \brief  程序启动画面
class GCMP_GUI_BASE_INTERFACE_EXPORT ISplashScreen
{
public:
    /// \brief 析构函数
    virtual ~ISplashScreen() = 0;

    /// \brief 设置启动画面路径
    ///
    /// 启动画面路径可以是相对于可执行程序的相对路径或绝对路径
    /// \param imagePath 启动画面路径
    /// \return 目前始终返回true
    virtual bool SetImagePath(const std::wstring& imagePath) = 0;
    
    /// \brief 显示启动画面
    virtual void Show() = 0;

    /// \brief 获取启动画面进度
    ///
    /// \return 启动画面当前进度
    virtual int GetProgress() const = 0;
    
    /// \brief 设置启动画面进度
    ///
    /// \param progress 进度，范围是0到100，小于0时作用等同于0，大于100时作用等同于100
    /// \return 目前始终返回true
    virtual bool SetProgress(int progress) = 0;

    /// \brief 设置启动画面提示信息
    ///
    /// \param message 提示信息
    virtual void ShowMessage(const std::wstring& message) = 0;
};

}   // end namespace gcmp

